/**
 * Created by Administrator on 2017/9/26.
 */
//引用
requirejs.config({
    baseUrl:'../js',//公共基础默认路径
    //引用模块
    paths:{
        //指定模块
        "jquery":"lib/jquery-3.2.1",
        "spinner":"lib/jquery.spinner",
        "cookie":"lib/jquery.cookie",
        "fly":"lib/jquery.fly.min",
    },
    //引用非模块
    shim:{
        "spinner":{
            deps:["jquery"],
            exports:"spinner",
        },
        "cookie":{
            deps:["jquery"],
            exports:"cookie",
        },
        "fly":{
            deps:["jquery"],
            exports:"fly",
        },
    }
})
//使用模块
requirejs(["jquery",'spinner','cookie','fly'],function ($) {
    $(function () {
        //购物车数量加减
        $('.spinnerExample').spinner({});
        $('.spinnerExample').val(1);

        //购物车的隐藏与展开
        var flag=false;
        $("#cartSlide").on("click",function () {
            if(flag){
                $("#sidecart").animate({right:"-280px"},500,function () {
                    $("#cartSlide").css("backgroundColor","#333");
                    flag=false;
                });
            }else{
                $("#sidecart").animate({right:"0px"},500,function () {
                    $("#cartSlide").css("backgroundColor","#e14958");
                    flag=true;
                });
            }
            //先清除所有的li标签，在重新加载
            $('.cartlist').find('ul li').eq(0).siblings('li').remove();
            var str=$.cookie(GetQueryString('utel'));
            var arrId=JSON.parse(str);
            remove(arrId).forEach(function (p1, p2, p3) {
                var newLi=$('.cartlist').find('li').eq(0).clone(true);
                newLi.find('b').html(imgInfo(p1).id)
                newLi.find('.kind').html(imgInfo(p1).kind);
                newLi.find('.img').css('background-image',"url('../images/"+imgInfo(p1).src+"')");
                newLi.find('.cart_bot1').find('p').html(imgInfo(p1).title);
                newLi.find('.sig_price').html(imgInfo(p1).newprice);
                $('.cartlist').find('ul').append(newLi);
            })
            $('.cartlist').find('ul li').eq(0).remove();

            //加载新数量
            function initCount(arr){
                var map={}
                for(var i=0;i<arr.length;i++){
                    var s=arr[i];
                    var r=map[s];
                    if(r){
                        map[s]+=1;
                    }else {
                        map[s]=1
                    }
                }
                return map;
            }
            var countNum=[];
            $.each(initCount(arrId),function (key,val) {
                countNum.push(val);
            })
            for(var i=0;i<$('.cartlist').find('.sigNum').length;i++){
                $('.cartlist').find('.sigNum').eq(i).val(countNum[i])
            }
            //重新计算总价格
            $('.tolprice').html("￥"+countMoney().toFixed(2));

        })

        //返回顶部
        $(document).on("scroll",function () {
            var maxHeight=$("#header").height()+$("#nav").height();
            if($(this).scrollTop()>maxHeight){
                $('.backtop').css('display',"block");
            }else {
                $('.backtop').css('display',"none");
            }
        });
        $('.backtop').on("click",function () {
            $(document).css("top","0px");
        });
        //判断是否当前是否有用户;并获取值
        function GetQueryString(name) {
            var reg = new RegExp("(^|&)"+name +"=([^&]*)(&|$)");
            var r= window.location.search.substr(1).match(reg);
            if(r!=null)return  unescape(r[2]);return null;
        }

        //有当前用户，则显示购物车/个人中心等
        if(GetQueryString('utel')!="null"){
            $(".utel").attr('href',"mine.html?utel="+GetQueryString('utel')).attr('id',"").html("欢迎您,"+GetQueryString('utel'));
            $(".utel").after('<a href="index.html" class="exit">[退出]</a>');//动态创建退出
            $(".icon-iconfontcolor39").parent('li').prev('li').find('a').attr('id',"").html("我的收藏");
            $(".utel").parent('li').after('<li><a href="shopcart.html?utel='+GetQueryString('utel')+'">购物车</a>|</li>');
            $(".logo").find('a').attr('href',"index.html?utel="+GetQueryString('utel'));
            $('.goshopcart').attr('href',"shopcart.html?utel="+GetQueryString('utel'));
        }
        //登录与注册函数
        function logreg(pram) {
            pram.on("click",function () {
                pram.attr('href','login.html');
            })
        }
        //登录
        logreg($("#login"));

        //注册
        logreg($("#reg"));

        //退出
        $(".exit").on("click",function () {
            $('#utel').html("登录");
            $(this).remove();
        });

        function imgInfo(numid) {
            var resIndex;
            if(numid>=80){
                resIndex=8;
            }else if(numid>=75){
                resIndex=7
            }else if(numid>=71){
                resIndex=6
            }else if(numid>=67){
                resIndex=5
            }else if(numid>=61){
                resIndex=4
            }else if(numid>=43){
                resIndex=3
            }else if(numid>=7){
                resIndex=2
            }else if(numid>=5){
                resIndex=1
            }else {
                resIndex=0
            }
            var result;
            $.ajax({
                url:"../js/tsconfig.json",
                type:"get",
                async:false,
                success:function (res) {
                    if(res){
                        $.each(res[resIndex],function (key,val) {
                            //查找与id相同的图片信息
                            if(numid==val.id){
                                result=val;
                            }
                        })
                    }
                }
            });
            return result;
        }
        var id=Number(GetQueryString('id'));
        console.log(id);
        //调用获取图片信息函数
        imgInfo(id);
        $('.imgbox').find('img').attr('src',imgInfo(id).src);
        $('.function').find('h1').html(imgInfo(id).title);
        $('.function').find('.newprice').html(imgInfo(id).newprice);
        $('.function').find('.comment').html("评论："+imgInfo(id).comment+"条");
        $('.function').find('.colect').html("收藏："+imgInfo(id).collect);
        $('.info1').find('span').eq(0).html("品牌："+imgInfo(id).brand);
        $('.info1').find('span').eq(1).html("品名："+imgInfo(id).title);
        $('.info1').find('span').eq(2).html("规格："+imgInfo(id).spec);
        $('.info1').find('span').eq(3).html("主要成分"+imgInfo(id).ingredient);
        $('.info1').find('span').eq(5).html("保质期："+imgInfo(id).date);
        $('.info1').find('span').eq(7).html("品牌："+imgInfo(id).number);
        $('.function').find('b').html(imgInfo(id).id);

        //tab栏价格
        $('.tag').find('.newprice').html(imgInfo(id).newprice);

        //固定tab栏
        var tabHeight=$('#header').height()+$('#nav').height()+$("#main").find('.title').height()+$('.details_h').height();
        var info1Height=tabHeight+$('.info1').height();
        var info2Height=info1Height+$('.info2').height();
        var info3Height=info2Height+$('.info3').height();
        var info4Height=info3Height+$('.info4').height();
        $(document).on("scroll",function ()  {
            if($(this).scrollTop()>tabHeight){
                $('.tag').css({"position":"fixed","top":0,"border-bottom":"1px solid #ccc"})
                $('.tag').find('.btn').css("display","block");
                if($(this).scrollTop()>info4Height){
                    $('.tag').find('li').eq(3).addClass('active').siblings('li').removeClass('active');
                }else if($(this).scrollTop()>info3Height){
                    $('.tag').find('li').eq(2).addClass('active').siblings('li').removeClass('active');
                }else if($(this).scrollTop()>info2Height){
                    $('.tag').find('li').eq(1).addClass('active').siblings('li').removeClass('active');
                }else {
                    $('.tag').find('li').eq(0).addClass('active').siblings('li').removeClass('active');
                }
            }else {
                $('.tag').css({
                    "position":"static",
                    "z-index":"9999"
                });
                $('.tag').find('.btn').css("display","none");
                $('.tag').find('li').eq(0).addClass('active').siblings('li').removeClass('active');
            }
        })
        //点击tab栏切换
        $('.tag li').on("click",function () {
            var tabIndex=$(this).index();
            $('.tag').find('li').eq(tabIndex).addClass('active').siblings('li').removeClass('active');
            if(tabIndex==0){
                // $('body').animate({"scrollTop":info1Height+80})
                $(window).scrollTop(info1Height+80)
            }else if(tabIndex==1){
                // $('body').animate({"scrollTop":info2Height+80})
                $(window).scrollTop(info2Height+80)
            }else if(tabIndex==2){
                // $('body').animate({"scrollTop":info3Height+80})
                $(window).scrollTop(info3Height+80)
            }else{
                // $('body').animate({"scrollTop":info4Height+80})
                $(window).scrollTop(info4Height+80)
            }
        })

        //改变数量
        $('.increase').on("click",function () {
            var num = $(".spinnerExample").val();
            if(Number(num)>=5){
                $('.max').css("display","block");
                $(this).attr('disabled',"disabled");
            }else{
                $('.max').css("display","none");
            }
        })
        $('.decrease').on("click",function () {
            var num = $(".spinnerExample").val();
            if(Number(num)<5) {
                $('.increase').removeAttr('disabled');
                $('.max').css("display", "none");
            }
        })

        //购物车这块
        //加入购物车
        var cartArr=[];
        $('.add').on("click",function () {
            var numlen=$('.spinnerExample').val();
            //动态改变购物车数量
            var str=$.cookie(GetQueryString('utel'));
            if(str){
                cartArr=JSON.parse(str);
            }
            //图片
            // var id=$(this).siblings('b').html();
            var id=$('.function').find('b').html();
            for(var i=0;i<numlen;i++){
                cartArr.push(id);
            }
            //当前用户
            var user=GetQueryString('utel');
            $.cookie(user,JSON.stringify(cartArr),{expires:7});
            $('.num').html(cartArr.length);
            //飞入购物车插件
            var offset = $("#end").offset();  //结束的地方的元素
            //是$(".addcar")这个元素点击促发的 开始动画的位置就是这个元素的位置为起点
            // var addcar = $(this);
            // var img = imgInfo(addcar.siblings('b').html()).src;
            var img=imgInfo($('.function').find('b').html()).src;
            var flyer = $('<img class="u-flyer" src="'+img+'">');
            //飞
            flyer.fly({
                //起点
                start: {
                    left: event.pageX,
                    top: event.pageY-scrollY
                },
                //终点
                end: {
                    left: offset.left,
                    top: offset.top-scrollY,
                    width: 0,
                    height: 0
                },
                //到达终点后调用的
                onEnd: function(){}
            });
        })
        //判断用户是否登录，若有登录，则加载用户的购物车数量
        var str=$.cookie(GetQueryString('utel'));
        //去重
        var arrId=JSON.parse(str);
        function remove(arrId) {
            var newArrId=[];
            arrId.forEach(function(p1){
                if (newArrId.indexOf(p1) == -1 ) {
                    newArrId.push(p1);
                }
            })
            return newArrId;
        }
        if(str){
            $('.num').html(arrId.length);
        }
        //购物车列表显示
        function imgInfo(numid) {
            var resIndex;
            if(numid>=80){
                resIndex=8;
            }else if(numid>=75){
                resIndex=7
            }else if(numid>=71){
                resIndex=6
            }else if(numid>=67){
                resIndex=5
            }else if(numid>=61){
                resIndex=4
            }else if(numid>=43){
                resIndex=3
            }else if(numid>=7){
                resIndex=2
            }else if(numid>=5){
                resIndex=1
            }else {
                resIndex=0
            }
            var result;
            $.ajax({
                url:"../js/tsconfig.json",
                type:"get",
                async:false,
                success:function (res) {
                    if(res){
                        $.each(res[resIndex],function (key,val) {
                            //查找与id相同的图片信息
                            if(numid==val.id){
                                result=val;
                            }
                        })
                    }
                }
            });
            return result;
        }
        remove(arrId).forEach(function (p1, p2, p3) {
            var newLi=$('.cartlist').find('li').eq(0).clone(true);
            newLi.find('b').html(imgInfo(p1).id)
            newLi.find('.kind').html(imgInfo(p1).kind);
            newLi.find('.img').css('background-image',"url('http://localhost:63342/daling/images/"+imgInfo(p1).src+"')");
            newLi.find('.cart_bot1').find('p').html(imgInfo(p1).title);
            newLi.find('.sig_price').html(imgInfo(p1).newprice);
            $('.cartlist').find('ul').append(newLi);
        })
        $('.cartlist').find('ul li').eq(0).remove();
        //购物车列表加减数量初始化
        function initCount(arr){
            var map={}
            for(var i=0;i<arr.length;i++){
                var s=arr[i];
                var r=map[s];
                if(r){
                    map[s]+=1;
                }else {
                    map[s]=1
                }
            }
            return map;
        }
        var countNum=[];
        $.each(initCount(arrId),function (key,val) {
            countNum.push(val);
        })
        for(var i=0;i<$('.cartlist').find('.sigNum').length;i++){
            $('.cartlist').find('.sigNum').eq(i).val(countNum[i])
        }

        $('.r_decrease').on("click",function () {
            var count=$(this).siblings('input').val();
            count--;
            $(this).siblings('input').val(count);
            $(this).parents('li').find('.tolprice').html(countMoney());
            $('.gocart').find('.tolprice').html(countMoney().toFixed(2));
            if(count<=1){
                $(this).attr('disabled','disabled');
            }
            $('.num').html(totalNum);
            //实时更新购物车的数量
            var str=$.cookie(GetQueryString('utel'));
            if(str){
                var imgId=$(this).parents('li').find('b').html();
                var arrId=JSON.parse(str);
                var index=arrId.indexOf(imgId);
                arrId.splice(index,1);
                cartArr.push($(this).parents('li').find('b').html());
                var user=GetQueryString('utel');
                $.cookie(user,JSON.stringify(arrId),{expires:7});
            }

        });
        $('.r_increase').on("click",function () {
            var count=$(this).siblings('input').val();
            count++;
            $(this).siblings('input').val(count);
            $('.gocart').find('.tolprice').html(countMoney().toFixed(2));
            if(count>1){
                $('.decrease').removeAttr('disabled');
            }
            $('.num').html(totalNum());
            //实时更新购物车的数量
            var str=$.cookie(GetQueryString('utel'));
            if(str){
                cartArr=JSON.parse(str);
                cartArr.push($(this).parents('li').find('b').html());
                var user=GetQueryString('utel');
                $.cookie(user,JSON.stringify(cartArr),{expires:7});
            }
        });


        //计算总数量
        function totalNum() {
            var totalNum=0;
            for(var i=0;i<$('.cartlist').find('li').length;i++){
                var sigleNum=Number($('.cartlist').find('li').eq(i).find('.sigNum').val());
                totalNum+=sigleNum;
            }
            return totalNum;
        }
        //计算总价
        function countMoney() {
            var totalmoney=0;
            for(var i=0;i<$('.cartlist').find('li').length;i++){
                var siglePrice=Number($('.cartlist').find('li').eq(i).find('.sig_price').html());
                var sigleNum=Number($('.cartlist').find('li').eq(i).find('.sigNum').val());
                totalmoney+=siglePrice*sigleNum;
            }
            return totalmoney;
        }
        $('.gocart').find('.tolprice').html(countMoney().toFixed(2));

        //点击x关闭购物车
        $('.close').on("click",function () {
            $("#sidecart").animate({right:"-280px"},500);
        });

        //删除购物车中的商品
        $('.r_del').on("click",function () {
            var imgId=$(this).parents('li').find('b').html();
            var str=$.cookie(GetQueryString('utel'));
            var arrId=JSON.parse(str);
            for(var i=0;i<arrId.length;i++){
                if(imgId==arrId[i]){
                    arrId.splice(i,1);
                    i--;
                }
            }
            $(this).parents('li').remove();
            //.num数量要改变
            $('.num').html(totalNum());
            //总价格要改变
            $('.tolprice').html(countMoney().toFixed(2));
            //重新插入
            var user=GetQueryString('utel');
            $.cookie(user,JSON.stringify(arrId),{expires:7});

        })
    })
})




